我正在尝试用C++编写一个应用程序,其中列出了从USB设备获得的信息。我正在关注USBView(Github)实用程序的代码。当设备处于D0电源状态(完全供电)时,我能够获取字符串描述符,但是当设备进入低电源状态时(D2),我不是。IOCTLIOCTL_USB_GET_DESCRIPTOR_FROM_NODE_CONNECTION返回错误“连接到系统的设备无法正常工作”。USBView实用程序显示当设备处于低功耗状态时字符串描述符不可用。这种行为很奇怪,我在USB规范中没有找到任何地方提及它。我检查了2台设备,我得到了相同的行为。即使在D2状态下,我也可以获得其他描述符,例如设备描述符
Windows/Linux/等的标准安装支持哪些USB类,没有产品特定的驱动程序?例如,始终支持大容量存储设备,无论其VID/PID组合如何。还有哪些类是这样工作的? 最佳答案 我不知道这是否与编程相关,但人机界面设备通常得到很好的支持。当然,仍然有一些HID需要“特殊”驱动程序来实现它们的额外功能(绘图板,我正在看着你)。 关于windows-免驱动程序支持哪些USB类?,我们在StackOverflow上找到一个类似的问题: https://stackov
我正在开发一个使用虚拟串行端口设备驱动程序与USB设备通信的应用程序。我们遇到过这样一种情况,如果在串口句柄打开时设备被拔掉(或死机),那么在串口句柄关闭后重新连接的唯一方法是拔掉设备,然后再插回。如果我能够足够快地检测到故障,则有潜在的解决方法。问题在于,在这些条件下,以下函数调用不会报告错误:ClearCommErrorGetCommModemStatusReadFile根据我的经验,当设备被拔掉时唯一返回错误的函数是WriteFile。可以理解,我真的不想为了测试端口连接是否仍然有效而编写无意义的数据。我的问题是是否有一些方法可以用来确定端口连接是否仍然有效。如果对我正在做的事情
我正在尝试使用STMicroelectronics的USB-FS库在STM32F103上实现USB麦克风。在WindowsXP、7和8上检测到我的麦克风。当我尝试使用Audacity录制语音时,信号在WindowsXP和Windows8上是正确的,但在Windows7上信号被放大了。有人知道发生了什么事吗?这是描述符:constuint8_tMic_ConfigDescriptor[]={/*Configuration1*/0x09,/*bLength*/USB_CONFIGURATION_DESCRIPTOR_TYPE,/*bDescriptorType*/0x64,/*wTotal
以下是我在Windows10上为客户端/服务器控制台应用程序进行相互SSL身份验证的设置:有一个服务器监听器控制台应用程序只接受TLS1.0连接。客户端控制台应用程序使用SslStream.AuthenticateAsClient配置安全连接并使用TLS1.2连接。我使用以下示例进行相互SSL身份验证:http://www.codeproject.com/Articles/326574/An-Introduction-to-Mutual-SSL-Authentication服务器代码:sslStream.AuthenticateAsServer(certificate,true,Ssl
我正在开发一个MFC工具来检查连接的USB设备的一些驱动程序信息,例如位置信息、父级、硬件ID等。我已经获得了我想要的所有其他信息,但我一直无法获取设备父级信息.我已经使用Setupapi.dll在我的代码中获取设备信息。使用SetupDiGetClassDevs函数获取USB设备信息句柄。使用SetupDiEnumDeviceInfo函数获取特定设备信息数据。使用SetupDiGetDeviceRegistryProperty函数获取设备描述和硬件ID。//ListallconnectedUSBdeviceshDevInfo=SetupDiGetClassDevs(pClassGui
问题来了。我们有数百个外部500gbUSB驱动器。在这一年中,每次驾车都会前往一个新的地点。自动检测USB驱动器已插入Windows系统,然后分配Z:\盘符的最佳方法是什么?这些USB驱动器将插入许多不同的计算机,因此像这样的脚本importsubprocessdiskpart_data="z-drive.txt"open(diskpart_data,"w").write("""selectvolumeF:assignletter=Z""")subprocess.call('diskpart/s%s'%diskpart_data)由于移动USB驱动器始终在不同Windows系统上的动态
大家好,我从系统获取设备列表。但我不确定如果我只想获取系统中当前的USB设备,我必须在下面的代码中指定什么类(DWORD标志)hDevInfo=SetupDiGetClassDevs(&GUID_DEVINTERFACE_USB_DEVICE,0,//Enumerator0,DIGCF_PRESENT|DIGCF_INTERFACEDEVICE); 最佳答案 考虑使用EnumerateHostController()。示例www.intel.com/intelpress/usb/examples/DUSBVC.PDFgithub.c
我有一个使用32位第三方库的32位应用程序。现在我必须将我的应用程序设为64位,以便它可以利用64位地址空间(大内存)。由于我无法将32位库加载到64位应用程序进程中,我正在考虑在第三方库上创建32位可执行包装器,并使用IPC(命名管道/套接字)从我的64位应用程序进行通信。所以我的问题是他们这样做会有什么问题吗?此外,如果我必须在64位系统上安装我的应用程序,所有与我的应用程序相关的文件都将被复制到“c:\ProgramFiles”目录。现在我可以将我的32位第三方exe包装器保留在同一个“c:\ProgramFiles”中,还是我需要复制到“c:\ProgramFiles(x86)
我对Windows中的命名管道比较陌生。我需要一个类似于linux的socat的Windows工具来通过命名管道进行通信。Cygwin的socat可以访问窗口命名管道吗?如果是,怎么办? 最佳答案 我自己很快就弄明白了。使用putty和serial作为连接类型。在串行线路框中键入完整的管道名称。 关于windows-用于与Windows命名管道通信的程序,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com